---@class GT.ui.control.buff_list : GT.ui
---@field u table<RoleID,GT.ui.control.buff_list> 玩家独立数据驱动
---@field binding GT.ui.control.buff_list
GT.ui.control.buff_list = class(GT.ui, false)


---@class ui_data_buff_list : ui_data
---@field unit_id unit 绑定单位到魔法效果显示栏组件

--- 创建BUFF显示控件
---@param data ui_data_buff_list
---@return GT.ui.control.buff_list
function GT.ui.control.buff_list:ctor(data)
    data.class=GT.ui.control.buff_list
    if data.uid ~= nil then
        super(self, data)
    else
        data.u_type = GT.ui.type.buff
        self.unit_id = data.unit_id
        --创建控件
        super(self, data)
        if self.unit_id then
            self:set_buff_on_ui(self.unit_id)
        end
    end
    self:buff_list_watch()
    return self
end

--监听绑定
---@return GT.ui.control.buff_list
function GT.ui.control.buff_list:buff_list_watch()
    ---@type bind_data[]
    local data = {

        {
            key = "unit_id",
            func = function(val, old)
                self.unit_id = val
                self:set_buff_on_ui(self.unit_id)
            end
        }
    }
    self.bind:add(data)
    return self
end

---@param  unit unit 单位
--绑定单位到魔法效果显示栏组件
function GT.ui.control.buff_list:set_buff_on_ui(unit)
    game_api.set_buff_on_ui_comp(self.player.player, unit, self.uid)
end
